package com.m3839.sdk.ym

/**
 * Description:快爆防沉迷的配置信息类
 *
 * @author 陈宝阳
 * @create 2020/4/8 11: 28
 */
class YouthModelConfig private constructor(builder: Builder){

    /**
     * 非节假日的游戏时长
     */
    var normalPlayTime: Float = 0.0f

    /**
     * 节假日的游戏时长
     */
    var holidayPlayTime: Float = 0.0f

    /**
     * 客服联系方式（用来找回密码）
     */
    var contact: String? = null

    /**
     * 默认的密码（用于用户忘记密码的时候）
     */
    var defaultPassword: String? = null

    /**
     * 节假日配置信息
     */
    val holidayList: MutableList<String> =
        mutableListOf()

    /**
     * 工作日配置信息
     */
    val workdayList: MutableList<String> =
        mutableListOf()

    /**
     * 夜间模式的开始时间
     */
    var nightStartTime: Int = 22

    /**
     * 夜间模式的结束时间
     */
    var nightEndTime: Int = 8

    /**
     * 设置横竖屏切换
     */
    var isLand: Boolean = false

    init {
        normalPlayTime = builder.normalPlayTime
        holidayPlayTime = builder.holidayPlayTime
        contact = builder.contact
        defaultPassword = builder.defaultPassword
        builder.holidayList?.let { holidayList.addAll(it) }
        builder.workdayList?.let { workdayList.addAll(it) }
        nightStartTime = builder.nightStartTime
        nightEndTime = builder.nightEndTime
        isLand = builder.isLand
    }

    companion object {
        inline fun build(block: Builder.() -> Unit) = Builder().apply(block).build()
    }


    class Builder {
        /**
         * 非节假日的游戏时长（单位小时）
         */
        var normalPlayTime = 0f

        /**
         * 节假日的游戏时长（单位小时）
         */
        var holidayPlayTime = 0f

        /**
         * 客服联系方式（用来找回密码）
         */
        var contact: String? = null

        /**
         * 默认的密码（用于用户忘记密码的时候）
         */
        var defaultPassword: String? = null

        /**
         * 节假日配置信息
         */
        var holidayList: MutableList<String>? =
            mutableListOf()

        /**
         * 工作日配置信息
         */
        var workdayList: MutableList<String>? =
            mutableListOf()

        /**
         * 夜间模式的开始时间
         */
        var nightStartTime: Int = 22

        /**
         * 夜间模式的结束时间
         */
        var nightEndTime: Int = 8

        /**
         * 横竖屏切换
         */
        var isLand: Boolean = false


        fun build() = YouthModelConfig(this)

    }
}